/*
 * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
 * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
 */

package org.jetbrains.kotlin.jvm.compiler.ir;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;

import java.io.File;
import java.util.regex.Pattern;

/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestGeneratorForCompilerTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@RunWith(JUnit3RunnerWithInners.class)
public class IrCompileKotlinWithJavacIntegrationTestGenerated extends AbstractIrCompileKotlinWithJavacIntegrationTest {
  @TestMetadata("compiler/testData/compileKotlinAgainstJava")
  @TestDataPath("$PROJECT_ROOT")
  @RunWith(JUnit3RunnerWithInners.class)
  public static class WithAPT extends AbstractIrCompileKotlinWithJavacIntegrationTest {
    private void runTest(String testDataFilePath) {
      KotlinTestUtils.runTest(this::doTestWithAPT, TargetBackend.JVM_IR, testDataFilePath);
    }

    @TestMetadata("AbstractClass.kt")
    public void testAbstractClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/AbstractClass.kt");
    }

    @TestMetadata("AbstractEnum.kt")
    public void testAbstractEnum() {
      runTest("compiler/testData/compileKotlinAgainstJava/AbstractEnum.kt");
    }

    public void testAllFilesPresentInWithAPT() {
      KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/compileKotlinAgainstJava"), Pattern.compile("^(.+)\\.kt$"), null, true);
    }

    @TestMetadata("AnnotationWithArguments.kt")
    public void testAnnotationWithArguments() {
      runTest("compiler/testData/compileKotlinAgainstJava/AnnotationWithArguments.kt");
    }

    @TestMetadata("AnnotationWithField.kt")
    public void testAnnotationWithField() {
      runTest("compiler/testData/compileKotlinAgainstJava/AnnotationWithField.kt");
    }

    @TestMetadata("AsteriskInImport.kt")
    public void testAsteriskInImport() {
      runTest("compiler/testData/compileKotlinAgainstJava/AsteriskInImport.kt");
    }

    @TestMetadata("CheckKotlinStub.kt")
    public void testCheckKotlinStub() {
      runTest("compiler/testData/compileKotlinAgainstJava/CheckKotlinStub.kt");
    }

    @TestMetadata("CheckNotNull.kt")
    public void testCheckNotNull() {
      runTest("compiler/testData/compileKotlinAgainstJava/CheckNotNull.kt");
    }

    @TestMetadata("Class.kt")
    public void testClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/Class.kt");
    }

    @TestMetadata("ClassDefaultConstructor.kt")
    public void testClassDefaultConstructor() {
      runTest("compiler/testData/compileKotlinAgainstJava/ClassDefaultConstructor.kt");
    }

    @TestMetadata("ClassWithNestedEnum.kt")
    public void testClassWithNestedEnum() {
      runTest("compiler/testData/compileKotlinAgainstJava/ClassWithNestedEnum.kt");
    }

    @TestMetadata("ClassWithTypeParameter.kt")
    public void testClassWithTypeParameter() {
      runTest("compiler/testData/compileKotlinAgainstJava/ClassWithTypeParameter.kt");
    }

    @TestMetadata("CyclicDependencies.kt")
    public void testCyclicDependencies() {
      runTest("compiler/testData/compileKotlinAgainstJava/CyclicDependencies.kt");
    }

    @TestMetadata("DefaultModifier.kt")
    public void testDefaultModifier() {
      runTest("compiler/testData/compileKotlinAgainstJava/DefaultModifier.kt");
    }

    @TestMetadata("EnclosingClassInner.kt")
    public void testEnclosingClassInner() {
      runTest("compiler/testData/compileKotlinAgainstJava/EnclosingClassInner.kt");
    }

    @TestMetadata("Enum.kt")
    public void testEnum() {
      runTest("compiler/testData/compileKotlinAgainstJava/Enum.kt");
    }

    @TestMetadata("EnumName.kt")
    public void testEnumName() {
      runTest("compiler/testData/compileKotlinAgainstJava/EnumName.kt");
    }

    @TestMetadata("EnumValues.kt")
    public void testEnumValues() {
      runTest("compiler/testData/compileKotlinAgainstJava/EnumValues.kt");
    }

    @TestMetadata("Inheritance.kt")
    public void testInheritance() {
      runTest("compiler/testData/compileKotlinAgainstJava/Inheritance.kt");
    }

    @TestMetadata("InheritedInner.kt")
    public void testInheritedInner() {
      runTest("compiler/testData/compileKotlinAgainstJava/InheritedInner.kt");
    }

    @TestMetadata("InnerCanonicalName.kt")
    public void testInnerCanonicalName() {
      runTest("compiler/testData/compileKotlinAgainstJava/InnerCanonicalName.kt");
    }

    @TestMetadata("InnerClass.kt")
    public void testInnerClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/InnerClass.kt");
    }

    @TestMetadata("InnerClassFromAsteriskImport.kt")
    public void testInnerClassFromAsteriskImport() {
      runTest("compiler/testData/compileKotlinAgainstJava/InnerClassFromAsteriskImport.kt");
    }

    @TestMetadata("InnerClassFromImport.kt")
    public void testInnerClassFromImport() {
      runTest("compiler/testData/compileKotlinAgainstJava/InnerClassFromImport.kt");
    }

    @TestMetadata("InnerWithGenericOuter.kt")
    public void testInnerWithGenericOuter() {
      runTest("compiler/testData/compileKotlinAgainstJava/InnerWithGenericOuter.kt");
    }

    @TestMetadata("Interface.kt")
    public void testInterface() {
      runTest("compiler/testData/compileKotlinAgainstJava/Interface.kt");
    }

    @TestMetadata("InterfaceField.kt")
    public void testInterfaceField() {
      runTest("compiler/testData/compileKotlinAgainstJava/InterfaceField.kt");
    }

    @TestMetadata("InterfaceMemberClass.kt")
    public void testInterfaceMemberClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/InterfaceMemberClass.kt");
    }

    @TestMetadata("InterfaceWithDefault.kt")
    public void testInterfaceWithDefault() {
      runTest("compiler/testData/compileKotlinAgainstJava/InterfaceWithDefault.kt");
    }

    @TestMetadata("JavaLangClass.kt")
    public void testJavaLangClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/JavaLangClass.kt");
    }

    @TestMetadata("ListImpl.kt")
    public void testListImpl() {
      runTest("compiler/testData/compileKotlinAgainstJava/ListImpl.kt");
    }

    @TestMetadata("MapExample.kt")
    public void testMapExample() {
      runTest("compiler/testData/compileKotlinAgainstJava/MapExample.kt");
    }

    @TestMetadata("Method.kt")
    public void testMethod() {
      runTest("compiler/testData/compileKotlinAgainstJava/Method.kt");
    }

    @TestMetadata("MethodWithArgument.kt")
    public void testMethodWithArgument() {
      runTest("compiler/testData/compileKotlinAgainstJava/MethodWithArgument.kt");
    }

    @TestMetadata("MethodWithSeveralTypeParameters.kt")
    public void testMethodWithSeveralTypeParameters() {
      runTest("compiler/testData/compileKotlinAgainstJava/MethodWithSeveralTypeParameters.kt");
    }

    @TestMetadata("MethodWithTypeParameter.kt")
    public void testMethodWithTypeParameter() {
      runTest("compiler/testData/compileKotlinAgainstJava/MethodWithTypeParameter.kt");
    }

    @TestMetadata("MethodWithWildcard.kt")
    public void testMethodWithWildcard() {
      runTest("compiler/testData/compileKotlinAgainstJava/MethodWithWildcard.kt");
    }

    @TestMetadata("Nesting.kt")
    public void testNesting() {
      runTest("compiler/testData/compileKotlinAgainstJava/Nesting.kt");
    }

    @TestMetadata("RawReturnType.kt")
    public void testRawReturnType() {
      runTest("compiler/testData/compileKotlinAgainstJava/RawReturnType.kt");
    }

    @TestMetadata("ReturnEnum.kt")
    public void testReturnEnum() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnEnum.kt");
    }

    @TestMetadata("ReturnInnerClass.kt")
    public void testReturnInnerClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnInnerClass.kt");
    }

    @TestMetadata("ReturnInnerInInner.kt")
    public void testReturnInnerInInner() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnInnerInInner.kt");
    }

    @TestMetadata("ReturnInnerInner.kt")
    public void testReturnInnerInner() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnInnerInner.kt");
    }

    @TestMetadata("ReturnNested.kt")
    public void testReturnNested() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnNested.kt");
    }

    @TestMetadata("ReturnNestedFQ.kt")
    public void testReturnNestedFQ() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnNestedFQ.kt");
    }

    @TestMetadata("ReturnType.kt")
    public void testReturnType() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnType.kt");
    }

    @TestMetadata("ReturnTypeResolution.kt")
    public void testReturnTypeResolution() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnTypeResolution.kt");
    }

    @TestMetadata("SeveralInnerClasses.kt")
    public void testSeveralInnerClasses() {
      runTest("compiler/testData/compileKotlinAgainstJava/SeveralInnerClasses.kt");
    }

    @TestMetadata("SimpleAnnotation.kt")
    public void testSimpleAnnotation() {
      runTest("compiler/testData/compileKotlinAgainstJava/SimpleAnnotation.kt");
    }

    @TestMetadata("SimpleWildcard.kt")
    public void testSimpleWildcard() {
      runTest("compiler/testData/compileKotlinAgainstJava/SimpleWildcard.kt");
    }

    @TestMetadata("Singleton.kt")
    public void testSingleton() {
      runTest("compiler/testData/compileKotlinAgainstJava/Singleton.kt");
    }

    @TestMetadata("StaticNestedClass.kt")
    public void testStaticNestedClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/StaticNestedClass.kt");
    }

    @TestMetadata("TypeArgumentInSuperType.kt")
    public void testTypeArgumentInSuperType() {
      runTest("compiler/testData/compileKotlinAgainstJava/TypeArgumentInSuperType.kt");
    }

    @TestMetadata("TypeParameter.kt")
    public void testTypeParameter() {
      runTest("compiler/testData/compileKotlinAgainstJava/TypeParameter.kt");
    }

    @TestMetadata("UseKtClass.kt")
    public void testUseKtClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/UseKtClass.kt");
    }

    @TestMetadata("Vararg.kt")
    public void testVararg() {
      runTest("compiler/testData/compileKotlinAgainstJava/Vararg.kt");
    }
  }

  @TestMetadata("compiler/testData/compileKotlinAgainstJava")
  @TestDataPath("$PROJECT_ROOT")
  @RunWith(JUnit3RunnerWithInners.class)
  public static class WithoutAPT extends AbstractIrCompileKotlinWithJavacIntegrationTest {
    private void runTest(String testDataFilePath) {
      KotlinTestUtils.runTest(this::doTestWithoutAPT, TargetBackend.JVM_IR, testDataFilePath);
    }

    @TestMetadata("AbstractClass.kt")
    public void testAbstractClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/AbstractClass.kt");
    }

    @TestMetadata("AbstractEnum.kt")
    public void testAbstractEnum() {
      runTest("compiler/testData/compileKotlinAgainstJava/AbstractEnum.kt");
    }

    public void testAllFilesPresentInWithoutAPT() {
      KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/compileKotlinAgainstJava"), Pattern.compile("^(.+)\\.kt$"), null, true);
    }

    @TestMetadata("AnnotationWithArguments.kt")
    public void testAnnotationWithArguments() {
      runTest("compiler/testData/compileKotlinAgainstJava/AnnotationWithArguments.kt");
    }

    @TestMetadata("AnnotationWithField.kt")
    public void testAnnotationWithField() {
      runTest("compiler/testData/compileKotlinAgainstJava/AnnotationWithField.kt");
    }

    @TestMetadata("AsteriskInImport.kt")
    public void testAsteriskInImport() {
      runTest("compiler/testData/compileKotlinAgainstJava/AsteriskInImport.kt");
    }

    @TestMetadata("CheckKotlinStub.kt")
    public void testCheckKotlinStub() {
      runTest("compiler/testData/compileKotlinAgainstJava/CheckKotlinStub.kt");
    }

    @TestMetadata("CheckNotNull.kt")
    public void testCheckNotNull() {
      runTest("compiler/testData/compileKotlinAgainstJava/CheckNotNull.kt");
    }

    @TestMetadata("Class.kt")
    public void testClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/Class.kt");
    }

    @TestMetadata("ClassDefaultConstructor.kt")
    public void testClassDefaultConstructor() {
      runTest("compiler/testData/compileKotlinAgainstJava/ClassDefaultConstructor.kt");
    }

    @TestMetadata("ClassWithNestedEnum.kt")
    public void testClassWithNestedEnum() {
      runTest("compiler/testData/compileKotlinAgainstJava/ClassWithNestedEnum.kt");
    }

    @TestMetadata("ClassWithTypeParameter.kt")
    public void testClassWithTypeParameter() {
      runTest("compiler/testData/compileKotlinAgainstJava/ClassWithTypeParameter.kt");
    }

    @TestMetadata("CyclicDependencies.kt")
    public void testCyclicDependencies() {
      runTest("compiler/testData/compileKotlinAgainstJava/CyclicDependencies.kt");
    }

    @TestMetadata("DefaultModifier.kt")
    public void testDefaultModifier() {
      runTest("compiler/testData/compileKotlinAgainstJava/DefaultModifier.kt");
    }

    @TestMetadata("EnclosingClassInner.kt")
    public void testEnclosingClassInner() {
      runTest("compiler/testData/compileKotlinAgainstJava/EnclosingClassInner.kt");
    }

    @TestMetadata("Enum.kt")
    public void testEnum() {
      runTest("compiler/testData/compileKotlinAgainstJava/Enum.kt");
    }

    @TestMetadata("EnumName.kt")
    public void testEnumName() {
      runTest("compiler/testData/compileKotlinAgainstJava/EnumName.kt");
    }

    @TestMetadata("EnumValues.kt")
    public void testEnumValues() {
      runTest("compiler/testData/compileKotlinAgainstJava/EnumValues.kt");
    }

    @TestMetadata("Inheritance.kt")
    public void testInheritance() {
      runTest("compiler/testData/compileKotlinAgainstJava/Inheritance.kt");
    }

    @TestMetadata("InheritedInner.kt")
    public void testInheritedInner() {
      runTest("compiler/testData/compileKotlinAgainstJava/InheritedInner.kt");
    }

    @TestMetadata("InnerCanonicalName.kt")
    public void testInnerCanonicalName() {
      runTest("compiler/testData/compileKotlinAgainstJava/InnerCanonicalName.kt");
    }

    @TestMetadata("InnerClass.kt")
    public void testInnerClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/InnerClass.kt");
    }

    @TestMetadata("InnerClassFromAsteriskImport.kt")
    public void testInnerClassFromAsteriskImport() {
      runTest("compiler/testData/compileKotlinAgainstJava/InnerClassFromAsteriskImport.kt");
    }

    @TestMetadata("InnerClassFromImport.kt")
    public void testInnerClassFromImport() {
      runTest("compiler/testData/compileKotlinAgainstJava/InnerClassFromImport.kt");
    }

    @TestMetadata("InnerWithGenericOuter.kt")
    public void testInnerWithGenericOuter() {
      runTest("compiler/testData/compileKotlinAgainstJava/InnerWithGenericOuter.kt");
    }

    @TestMetadata("Interface.kt")
    public void testInterface() {
      runTest("compiler/testData/compileKotlinAgainstJava/Interface.kt");
    }

    @TestMetadata("InterfaceField.kt")
    public void testInterfaceField() {
      runTest("compiler/testData/compileKotlinAgainstJava/InterfaceField.kt");
    }

    @TestMetadata("InterfaceMemberClass.kt")
    public void testInterfaceMemberClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/InterfaceMemberClass.kt");
    }

    @TestMetadata("InterfaceWithDefault.kt")
    public void testInterfaceWithDefault() {
      runTest("compiler/testData/compileKotlinAgainstJava/InterfaceWithDefault.kt");
    }

    @TestMetadata("JavaLangClass.kt")
    public void testJavaLangClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/JavaLangClass.kt");
    }

    @TestMetadata("ListImpl.kt")
    public void testListImpl() {
      runTest("compiler/testData/compileKotlinAgainstJava/ListImpl.kt");
    }

    @TestMetadata("MapExample.kt")
    public void testMapExample() {
      runTest("compiler/testData/compileKotlinAgainstJava/MapExample.kt");
    }

    @TestMetadata("Method.kt")
    public void testMethod() {
      runTest("compiler/testData/compileKotlinAgainstJava/Method.kt");
    }

    @TestMetadata("MethodWithArgument.kt")
    public void testMethodWithArgument() {
      runTest("compiler/testData/compileKotlinAgainstJava/MethodWithArgument.kt");
    }

    @TestMetadata("MethodWithSeveralTypeParameters.kt")
    public void testMethodWithSeveralTypeParameters() {
      runTest("compiler/testData/compileKotlinAgainstJava/MethodWithSeveralTypeParameters.kt");
    }

    @TestMetadata("MethodWithTypeParameter.kt")
    public void testMethodWithTypeParameter() {
      runTest("compiler/testData/compileKotlinAgainstJava/MethodWithTypeParameter.kt");
    }

    @TestMetadata("MethodWithWildcard.kt")
    public void testMethodWithWildcard() {
      runTest("compiler/testData/compileKotlinAgainstJava/MethodWithWildcard.kt");
    }

    @TestMetadata("Nesting.kt")
    public void testNesting() {
      runTest("compiler/testData/compileKotlinAgainstJava/Nesting.kt");
    }

    @TestMetadata("RawReturnType.kt")
    public void testRawReturnType() {
      runTest("compiler/testData/compileKotlinAgainstJava/RawReturnType.kt");
    }

    @TestMetadata("ReturnEnum.kt")
    public void testReturnEnum() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnEnum.kt");
    }

    @TestMetadata("ReturnInnerClass.kt")
    public void testReturnInnerClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnInnerClass.kt");
    }

    @TestMetadata("ReturnInnerInInner.kt")
    public void testReturnInnerInInner() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnInnerInInner.kt");
    }

    @TestMetadata("ReturnInnerInner.kt")
    public void testReturnInnerInner() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnInnerInner.kt");
    }

    @TestMetadata("ReturnNested.kt")
    public void testReturnNested() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnNested.kt");
    }

    @TestMetadata("ReturnNestedFQ.kt")
    public void testReturnNestedFQ() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnNestedFQ.kt");
    }

    @TestMetadata("ReturnType.kt")
    public void testReturnType() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnType.kt");
    }

    @TestMetadata("ReturnTypeResolution.kt")
    public void testReturnTypeResolution() {
      runTest("compiler/testData/compileKotlinAgainstJava/ReturnTypeResolution.kt");
    }

    @TestMetadata("SeveralInnerClasses.kt")
    public void testSeveralInnerClasses() {
      runTest("compiler/testData/compileKotlinAgainstJava/SeveralInnerClasses.kt");
    }

    @TestMetadata("SimpleAnnotation.kt")
    public void testSimpleAnnotation() {
      runTest("compiler/testData/compileKotlinAgainstJava/SimpleAnnotation.kt");
    }

    @TestMetadata("SimpleWildcard.kt")
    public void testSimpleWildcard() {
      runTest("compiler/testData/compileKotlinAgainstJava/SimpleWildcard.kt");
    }

    @TestMetadata("Singleton.kt")
    public void testSingleton() {
      runTest("compiler/testData/compileKotlinAgainstJava/Singleton.kt");
    }

    @TestMetadata("StaticNestedClass.kt")
    public void testStaticNestedClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/StaticNestedClass.kt");
    }

    @TestMetadata("TypeArgumentInSuperType.kt")
    public void testTypeArgumentInSuperType() {
      runTest("compiler/testData/compileKotlinAgainstJava/TypeArgumentInSuperType.kt");
    }

    @TestMetadata("TypeParameter.kt")
    public void testTypeParameter() {
      runTest("compiler/testData/compileKotlinAgainstJava/TypeParameter.kt");
    }

    @TestMetadata("UseKtClass.kt")
    public void testUseKtClass() {
      runTest("compiler/testData/compileKotlinAgainstJava/UseKtClass.kt");
    }

    @TestMetadata("Vararg.kt")
    public void testVararg() {
      runTest("compiler/testData/compileKotlinAgainstJava/Vararg.kt");
    }
  }
}
